
#ifdef GL_ES
precision mediump float;
#endif

// #define translate
#define PI 3.14159265359

uniform vec2 u_resolution;
uniform float u_time;

float box(in vec2 _st,in vec2 _size){
    _size=vec2(.5)-_size;
    vec2 uv=smoothstep(_size,_size+vec2(.001),_st)*smoothstep(_size,_size+vec2(.001),vec2(1.)-_st);
    return uv.x*uv.y;
}

mat2 rotate2d(float _angle){
    return mat2(cos(_angle),-sin(_angle),
    sin(_angle),cos(_angle));
}

mat2 scale(vec2 _scale){
    return mat2(_scale.x,0.,
    0.,_scale.y);
}

void main(){
    vec2 st=gl_FragCoord.xy/u_resolution.xy;
    vec3 color=vec3(0.);

    // translate
    float s=fract(st.x-u_time*.3);
    
    color+=vec3(box(vec2(s,st.t),vec2(.1,.1)));
    
    gl_FragColor=vec4(color,1.);
}
